package cc;

//形状，模型
interface Shape {
	void draw();
}

//长方形
class Rectangle implements Shape {

	@Override
	public void draw() {
		System.out.println("调用长方形的draw()方法.");
	}
}

//正方形
class Square implements Shape {

	@Override
	public void draw() {
		System.out.println("调用正方形的draw()方法.");
	}
}

//圆形
class Circle implements Shape {

	@Override
	public void draw() {
		System.out.println("调用圆形的draw()方法");
	}
}

class ShapeFactory {

	// 使用 getShape 方法获取形状类型的对象
	public Shape getShape(String shapeType) {
		if (shapeType == null) {
			return null;
		}
		if (shapeType.equalsIgnoreCase("圆形")) {
			return new Circle();
		} else if (shapeType.equalsIgnoreCase("长方形")) {
			return new Rectangle();
		} else if (shapeType.equalsIgnoreCase("正方形")) {
			return new Square();
		}
		return null;
	}
}

public class gc {

	public static void main(String[] args) {
		ShapeFactory shapeFactory = new ShapeFactory();

		// 获取 Circle 的对象，并调用它的 draw 方法
		Shape shape1 = shapeFactory.getShape("圆形");

		// 调用 Circle 的 draw 方法
		shape1.draw();

		// 获取 Rectangle 的对象，并调用它的 draw 方法
		Shape shape2 = shapeFactory.getShape("长方形");

		// 调用 Rectangle 的 draw 方法
		shape2.draw();

		// 获取 Square 的对象，并调用它的 draw 方法
		Shape shape3 = shapeFactory.getShape("正方形");

		// 调用 Square 的 draw 方法
		shape3.draw();
	}
}
